<h1 id="rename">rename</h1>
<p>用字符串替换的方式批量改变文件名</p>
<h2 id="补充说明">补充说明</h2>
<p><strong>rename命令</strong> 用字符串替换的方式批量改变文件名。</p>
<h3 id="语法">语法</h3>
<pre><code class="language-bash">rename(参数)</code></pre>
<h3 id="参数">参数</h3>
<pre><code class="language-bash">原字符串：将文件名需要替换的字符串；
目标字符串：将文件名中含有的原字符替换成目标字符串；
文件：指定要改变文件名的文件列表。</code></pre>
<h3 id="实例">实例</h3>
<p>将main1.c重命名为main.c</p>
<pre><code class="language-bash">rename main1.c main.c main1.c</code></pre>
<p><strong>rename支持通配符</strong></p>
<pre><code class="language-bash">?  可替代单个字符
*  可替代多个字符
[charset]  可替代charset集中的任意单个字符</code></pre>
<p>文件夹中有这些文件foo1, …, foo9, foo10, …, foo278</p>
<p>如果使用<code>rename foo foo0 foo?</code>，会把foo1到foo9的文件重命名为foo01到foo09，重命名的文件只是有4个字符长度名称的文件，文件名中的foo被替换为foo0。</p>
<p>如果使用<code>rename foo foo0 foo??</code>，foo01到foo99的所有文件都被重命名为foo001到foo099，只重命名5个字符长度名称的文件，文件名中的foo被替换为foo0。</p>
<p>如果使用<code>rename foo foo0 foo*</code>，foo001到foo278的所有文件都被重命名为foo0001到foo0278，所有以foo开头的文件都被重命名。</p>
<p>如果使用<code>rename foo0 foo foo0[2]*</code>，从foo0200到foo0278的所有文件都被重命名为foo200到foo278，文件名中的foo0被替换为foo。</p>
<p><strong>rename支持正则表达式</strong></p>
<p>字母的替换</p>
<pre><code class="language-bash">rename &quot;s/AA/aa/&quot; *  //把文件名中的AA替换成aa</code></pre>
<p>修改文件的后缀</p>
<pre><code class="language-bash">rename &quot;s//.html//.php/&quot; *     //把.html 后缀的改成 .php后缀</code></pre>
<p>批量添加文件后缀</p>
<pre><code class="language-bash">rename &quot;s/$//.txt/&quot; *     //把所有的文件名都以txt结尾</code></pre>
<p>批量删除文件名</p>
<pre><code class="language-bash">rename &quot;s//.txt//&quot; *      //把所有以.txt结尾的文件名的.txt删掉</code></pre>
<!-- Linux命令行搜索引擎：https://jaywcjlove.github.io/linux-command/ -->
